// 此处第二个参数vm，就是我们在页面使用的this，你可以通过vm获取vuex等操作，更多内容详见uView对拦截器的介绍部分：
// https://uviewui.com/js/http.html#%E4%BD%95%E8%B0%93%E8%AF%B7%E6%B1%82%E6%8B%A6%E6%88%AA%EF%BC%9F
const install = (Vue, vm) => {
	//定义api属性
	vm.$u.api = {}
	// 此处没有使用传入的params参数
	/**
	 * @desc 首页
	 */
	vm.$u.api.index = (params = {}) => vm.$u.get('/api/index',params);
	
	
	//认证相关
	/**
	 * @desc 登录
	 */
	vm.$u.api.authLogin = params => vm.$u.post('/api/auth/login',params);
	/**
	 * @desc 退出登录
	 */
	vm.$u.api.authLogout = () => vm.$u.post('/api/auth/logout');
	/**
	 * @desc 获取OSStoken
	 */
	vm.$u.api.authOssToken = () => vm.$u.get('/api/auth/oss/token');
	/**
	 * @desc 注册
	 */
	vm.$u.api.authRegister = params => vm.$u.post('/api/auth/register',params);
	/**
	 * @desc 修改密码
	 */
	vm.$u.api.putPassword = params => vm.$u.post('/api/auth/password/update',params);
	/**
	 * @desc 找回密码-邮箱code
	 */
	vm.$u.api.findPassword = params => vm.$u.post('/api/auth/reset/password/email',params);
	/**
	 * @desc 找回密码
	 */
	vm.$u.api.findPasswordCode = params => vm.$u.post('/api/auth/reset/password/email/code',params);
	/**
	 * @desc 绑定手机号-验证码
	 */
	vm.$u.api.phoneCode = params => vm.$u.post('/api/auth/phone/code',params);
	/**
	 * @desc 绑定手机号
	 */
	vm.$u.api.phone = params => vm.$u.patch('/api/auth/phone/update',params);
	/**
	 * @desc 绑定邮箱-验证码
	 */
	vm.$u.api.emailCode = params => vm.$u.post('/api/auth/email/code',params);
	/**
	 * @desc 绑定邮箱
	 */
	vm.$u.api.email = params => vm.$u.patch('/api/auth/email/update',params);
	
	
	
	
	
	
	
	
	//用户相关
	/**
	 * @desc 用户详情
	 */
	vm.$u.api.userInfo = () => vm.$u.get('/api/user');
	/**
	 * @desc 修改用户信息
	 */
	vm.$u.api.userInfoUpdata = params => vm.$u.put('/api/user',params);
	/**
	 * @desc 修改用户头像
	 */
	vm.$u.api.userAvatar = params => vm.$u.post('/api/user/avatar',params);
	/**
	 * @desc 我的收藏
	 */
	vm.$u.api.userCollect = () => vm.$u.get('/api/collects');
	
	
	
	
	
	//商品相关
	/**
	 * @desc 商品详情
	 */
	vm.$u.api.goodsInfo = id => vm.$u.get(`/api/goods/${id}`);
	/**
	 * @desc 收藏
	 */
	vm.$u.api.goodsCollect = id => vm.$u.post(`/api/collects/goods/${id}`);
	/**
	 * @desc 商品列表
	 */
	vm.$u.api.goodsList = (params = {}) => vm.$u.get('/api/goods',params);
	
	
	
	
	//购物车相关
	/**
	 * @desc 加入购物车
	 */
	vm.$u.api.cartAdd = params => vm.$u.post('/api/carts',params);
	/**
	 * @desc 购物车列表
	 */
	vm.$u.api.cartList = () => vm.$u.get('/api/carts?include=goods');
	/**
	 * @desc 购物车数量改变
	 */
	vm.$u.api.numChange = (cart,num) => vm.$u.put(`/api/carts/${cart}`,{num});
	/**
	 * @desc 移出购物车
	 */
	vm.$u.api.delCartGoods = cart => vm.$u.delete(`/api/carts/${cart}`);
	/**
	 * @desc 购物车改变选中
	 */
	vm.$u.api.isCheck = cart_ids => vm.$u.patch(`/api/carts/checked`,{cart_ids});
	
	
	
	
	
	// 订单相关
	/**
	 * @desc 订单预览
	 */
	vm.$u.api.ordersPreview = () => vm.$u.get('/api/orders/preview');
	/**
	 * @desc 提交订单
	 */
	vm.$u.api.sendOrders = address_id => vm.$u.post(`/api/orders`,{address_id});
	/**
	 * @desc 订单列表
	 */
	vm.$u.api.ordersList = (status,page) => vm.$u.get('/api/orders?status=' + status + '&page=' + page + '&include=orderDetails.goods');
	/**
	 * @desc 订单详情
	 */
	vm.$u.api.ordersListInfo = order => vm.$u.get(`/api/orders/${order}?include=orderDetails.goods,user`);
	
	
	
	
	
	
	// 地址管理
	/**
	 * @desc 添加地址
	 */
	vm.$u.api.addAddress = params => vm.$u.post('/api/address',params);
	/**
	 * @desc 地址列表
	 */
	vm.$u.api.addressList = () => vm.$u.get('/api/address');
	/**
	 * @desc 删除地址
	 */
	vm.$u.api.delAddressList = address => vm.$u.delete(`/api/address/${address}`);
	/**
	 * @desc 地址详情
	 */
	vm.$u.api.addressInfo = address => vm.$u.get(`/api/address/${address}`);
	/**
	 * @desc 更新地址
	 */
	vm.$u.api.putAddress = (address,params = {}) => vm.$u.put(`/api/address/${address}`,params);
	
	
	
	
	
	
	// 支付相关
	/**
	 * @desc 获取支付二维码
	 */
	vm.$u.api.odersPay = order => vm.$u.get(`/api/orders/${order}/pay?type=aliyun`);
	/**
	 * @desc 查询支付状态
	 */
	vm.$u.api.odersStatus = order => vm.$u.get(`/api/orders/${order}/status`);
	
	
}

export default {
	install
}
